/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pkgMetodoPyramid.pkgPersistencia;

import java.io.IOException;
import java.io.RandomAccessFile;
import pkgMetodoPyramid.pkgSoporte.Constants;
import pkgUtil.PASConstants;
import pkgUtil.pkgSupportFile.pkgFrameworkFile.IGrabable;
import pkgUtil.pkgSupportFile.pkgFrameworkFile.Register;

/**
 *
 * @author Administrador
 */
public class HeadDataPASPyramidFile implements IGrabable {

    private Integer identificadorMethod;
    private Integer totalVarones;
    private Integer totalMujeres;
    private Integer total;
    private String titulo;
    private String subTitulo;

    public HeadDataPASPyramidFile() {
        identificadorMethod = PASConstants.ID_FILE_METHOD_PYRAMID;
    }

    @Override
    public int sizeOf() {
        //tam(identificadorMethod)
        //tam(totalVarones)
        //tam(totalMujeres)
        //tam(total)
        //tam(titulo)
        //tam(subTitulo)
        int totalSize = PASConstants.sizeBytesInteger
                + PASConstants.sizeBytesInteger
                + PASConstants.sizeBytesInteger
                + PASConstants.sizeBytesInteger
                + (Constants.LENGTH_TITULE_FILE * PASConstants.sizeBytesStringCharacter)
                + (Constants.LENGTH_SUBTITULE_FILE * PASConstants.sizeBytesStringCharacter);

        return totalSize;
    }

    @Override
    public void save(RandomAccessFile a) throws IOException {
        a.writeInt(identificadorMethod);
        a.writeInt(totalVarones);
        a.writeInt(totalMujeres);
        a.writeInt(total);
        Register.writeString(a, titulo, Constants.LENGTH_TITULE_FILE);
        Register.writeString(a, subTitulo, Constants.LENGTH_SUBTITULE_FILE);
    }

    @Override
    public void read(RandomAccessFile a) throws IOException {
        identificadorMethod = a.readInt();
        totalVarones = a.readInt();
        totalMujeres = a.readInt();
        total = a.readInt();
        titulo = Register.readString(a, Constants.LENGTH_TITULE_FILE).trim();
        subTitulo = Register.readString(a, Constants.LENGTH_SUBTITULE_FILE).trim();
    }

    @Override
    public int compareTo(Object o) {
        HeadDataPASPyramidFile otro = (HeadDataPASPyramidFile) o;
        String cad = titulo + "- " + subTitulo;
        String cadOtro = otro.titulo + "- " + otro.subTitulo;
        return cad.compareTo(cadOtro);
    }

    /**
     * @return the totalVarones
     */
    public Integer getTotalVarones() {
        return totalVarones;
    }

    /**
     * @param totalVarones the totalVarones to set
     */
    public void setTotalVarones(Integer totalVarones) {
        this.totalVarones = totalVarones;
    }

    /**
     * @return the totalMujeres
     */
    public Integer getTotalMujeres() {
        return totalMujeres;
    }

    /**
     * @param totalMujeres the totalMujeres to set
     */
    public void setTotalMujeres(Integer totalMujeres) {
        this.totalMujeres = totalMujeres;
    }

    /**
     * @return the total
     */
    public Integer getTotal() {
        return total;
    }

    /**
     * @param total the total to set
     */
    public void setTotal(Integer total) {
        this.total = total;
    }

    /**
     * @return the titulo
     */
    public String getTitulo() {
        return titulo;
    }

    /**
     * @param titulo the titulo to set
     */
    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    /**
     * @return the subTitulo
     */
    public String getSubTitulo() {
        return subTitulo;
    }

    /**
     * @param subTitulo the subTitulo to set
     */
    public void setSubTitulo(String subTitulo) {
        this.subTitulo = subTitulo;
    }

    /**
     * @return the identificadorMethod
     */
    public Integer getIdentificadorMethod() {
        return identificadorMethod;
    }
}
